package collection;

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Random;
import java.util.Set;

/**
 * 生成20个不重复的随机数(100以内的)
 * 然后按从大到小排序。排序后再将第6个数到第15个数按照从小到大排序
 * 排好后输出结果。
 * 
 * 20,19,18,17,16,6,7,8,9,10,11,12,13,14,15,5,4,3,2,1
 * 
 * 
 * 从大到小排序数字时要自行定义比较器。提示:
 * Comparator接口中的compare(T o1,T o2)方法返回的int值的三种取值范围:
 * 当返回值>0时表示o1>o2
 * 当返回值<0时表示o1<o2
 * 当返回值=0时表示o1=o2
 * 
 * @author 范传奇
 *
 */
public class Test3 {
	public static void main(String[] args) {
//		List<Integer> list = new ArrayList<>();
//		Random random = new Random();
//		while(list.size()<20) {
//			int num = random.nextInt(100);
//			if(list.contains(num)) {
//				continue;
//			}
//			list.add(num);
//		}
//		System.out.println(list);
//		System.out.println(list.size());
		
		Set<Integer> set = new HashSet<>();
		Random random = new Random();
		while(set.size()<20) {
			set.add(random.nextInt(100));
		}
		System.out.println(set);
		System.out.println(set.size());
		List<Integer> list = new ArrayList<>(set);
		
		
		Collections.sort(list,(o1,o2)->o2-o1);
		System.out.println(list);		
		Collections.reverse(list.subList(5,15));
		System.out.println(list);
	}
}










